home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / unixlib.lha / unix / src / rmdir.c < prev    next >
C/C++ Source or Header  |  1995-09-05  |  557b  |  33 lines

  1. #include "amiga.h"
  2. #include <utility/tagitem.h>
  3.  
  4. int rmdir(char *name)
  5. {
  6.     struct FileInfoBlock *fib;
  7.     BPTR lock = 0;
  8.  
  9.     if ((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) &&
  10.     (lock = Lock(name, ACCESS_READ)) &&
  11.     Examine(lock, fib)) {
  12.     int isdir = fib->fib_DirEntryType > 0;
  13.  
  14.     UnLock(lock);
  15.     FreeDosObject(DOS_FIB, fib);
  16.  
  17.     if (isdir) {
  18.         if (DeleteFile(name))
  19.         return 0;
  20.         ERROR;
  21.     }
  22.     errno = ENOTDIR;
  23.     return -1;
  24.     }
  25.     errno = convert_oserr(IoErr());
  26.  
  27.     if (lock)
  28.     UnLock(lock);
  29.     if (fib)
  30.     FreeDosObject(DOS_FIB, fib);
  31.     return -1;
  32. }
  33.